home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / SAT 2.3.8 / Demos / Zkrolly demo ƒ / sZprite.c < prev    next >
Text File  |  1994-08-21  |  1KB  |  70 lines

  1.  
  2. //• C translation from Pascal source file: sZprite.p
  3.  
  4. //• sZprite;
  5.  
  6. //• Prototypes, etc.
  7.  
  8. #include "SAT.h"
  9.  
  10. void InitZprite();
  11. pascal void SetupZprite(SpritePtr me);
  12. pascal void HandleZprite(SpritePtr me);
  13.  
  14.  
  15. enum {
  16.     zpeedH = 1,
  17.     zpeedV = 1
  18. };
  19.  
  20. Handle theSound;
  21. FacePtr Zfaces[2];
  22.  
  23. void InitZprite()
  24. {
  25.     short i;
  26.     
  27.     theSound = SATGetSound(128);
  28.     for ( i = 0; i <= 1; i++)
  29.         Zfaces[i] = SATGetFace(128 + i);
  30. }
  31.  
  32. pascal void SetupZprite(SpritePtr me)
  33. {
  34.         me->speed.h =   zpeedH;
  35.         me->speed.v = - zpeedV;
  36.         me->face = Zfaces[1];
  37.         me->task = &HandleZprite;
  38. }
  39.  
  40. pascal void HandleZprite(SpritePtr me)
  41. {
  42.     //• if mode < 1 then Face := nil;{test av faceless.
  43.  
  44.     me->position.h = me->position.h + me->speed.h;
  45.     me->position.v = me->position.v + me->speed.v;
  46.     if ( me->position.h > gSAT.offSizeH ) //• 400.
  47.     {
  48.         me->speed.h = -zpeedH;
  49.         SATSoundPlay(theSound, 1, false);
  50.         me->face = Zfaces[0];
  51.     }
  52.     if ( me->position.h < -20 ) //• 50.
  53.     {
  54.         me->speed.h = zpeedH;
  55.         SATSoundPlay(theSound, 1, true);
  56.         me->face = Zfaces[1];
  57.     }
  58.     if ( me->position.v > gSAT.offSizeV ) //• 400.
  59.     {
  60.         me->speed.v = -zpeedV;
  61.         SATSoundPlay(theSound, 1, false);
  62.     }
  63.     if ( me->position.v < -20 ) //• 50.
  64.     {
  65.         me->speed.v = zpeedV;
  66.         SATSoundPlay(theSound, 1, true);
  67.     }
  68. }
  69.  
  70.